package team.hyznrj.studentsys.service;

import org.apache.ibatis.annotations.Param;
import team.hyznrj.studentsys.dto.RoleDto;
import team.hyznrj.studentsys.entity.account.key.RolePowerTableKey;

import java.util.List;
import java.util.Set;

/**
 * @author ReMidDream
 * @date 2018-05-07 14:39
 **/
public interface RoleService {

    /**
     * 根据 用户权限内 能查询的全部角色
     * @param roleLovellId 角色等级
     * @return 角色ID
     */
    List<String> findRoleId (List<String> roleLovellId );

    /**
     * 根据Id单个查询
     * @param roleId 角色ID
     * @return RoleDto
     */
    RoleDto findRoleDtoByRoleId (String roleId);

    /**
     *  根据 ids 查询 角色信息
     * @param roleIds 角色ids
     * @return RoleDto 的 list
     */
    List<RoleDto> findRoleDtoByRoleIds (Set<String> roleIds);

    /**
     *  查询所有 角色信息
     * @return roleDto
     */
    List<RoleDto> findAllRoleDto (List<String> roleId);

    /**
     * 删除角色 与 权限 的 关系
     * @param rolePowerTableKey 关系键
     */
    void deleteRelationshipBetweenRoleAndPower(RolePowerTableKey rolePowerTableKey);

    /**
     *  插入 角色 与 权限 的 关系
     * @param rolePowerTableKey 关系键
     */
    void insertRelationshipBetweenRoleAndPower(RolePowerTableKey rolePowerTableKey);

    /**
     * 删除角色
     * @param roleId
     */
    void  deleteRole(String roleId);

    /**
     * 插入 更新 角色
     * @param roleDto
     */
    void insertUpdateRole(RoleDto roleDto);

}
